Aggregation এবং Grouping ব্যবহার

Database Tutorials - ডিবি২ (DB2) DB2 SQL এবং Queries |
233
233

DB2-এ Aggregation এবং Grouping SQL কুয়েরি লেখার জন্য গুরুত্বপূর্ণ টুলস, যা ডেটা বিশ্লেষণ এবং সংক্ষেপণের জন্য ব্যবহৃত হয়। এগুলি ব্যবহৃত হয় যখন আপনি ডেটাবেস থেকে একাধিক রেকর্ডের উপর ভিত্তি করে তথ্য সংক্ষেপিত বা সামগ্রিক তথ্য পাওয়ার চেষ্টা করেন।


Aggregation ব্যবহার

Aggregation হল ডেটাবেসের একাধিক রেকর্ড থেকে একটি একক মান বের করার প্রক্রিয়া। DB2 SQL এ কিছু গুরুত্বপূর্ণ Aggregation Functions রয়েছে, যা ব্যবহৃত হয়:

  • COUNT(): একটি কলামের মধ্যে মোট রেকর্ডের সংখ্যা গণনা করে।
  • SUM(): একটি কলামের মানের যোগফল বের করে।
  • AVG(): একটি কলামের মানের গড় বের করে।
  • MIN(): একটি কলামের মধ্যে সর্বনিম্ন মান বের করে।
  • MAX(): একটি কলামের মধ্যে সর্বোচ্চ মান বের করে।

উদাহরণ:

ধরা যাক আমাদের কাছে একটি Sales টেবিল আছে যেখানে বিক্রয়ের তথ্য রাখা আছে, এবং আমরা বিক্রয়ের মোট পরিমাণ জানার চেষ্টা করছি।

SELECT SUM(sale_amount) AS total_sales
FROM Sales;

এখানে, SUM() ফাংশনটি বিক্রয়ের পরিমাণের যোগফল বের করবে।


Grouping ব্যবহার

Grouping ব্যবহার করা হয় ডেটা সেটকে কিছু নির্দিষ্ট মান বা ক্যাটাগরির ভিত্তিতে ভাগ করার জন্য। এটি একটি গুরুত্বপূর্ণ টুল যেখানে একাধিক রেকর্ডের মধ্যে সংক্ষেপিত ফলাফল পেতে হয়, তবে সেটি নির্দিষ্ট কলামের উপর ভিত্তি করে ভাগ করতে হয়।

GROUP BY ক্লজ ব্যবহার করে DB2-এ গ্রুপিং করা হয়। সাধারণত, গ্রুপিং অ্যাগ্রিগেট ফাংশনগুলোর সাথে ব্যবহার করা হয়।

উদাহরণ:

ধরা যাক, আমরা Sales টেবিলের মধ্যে প্রতিটি বিক্রয় প্রতিনিধি (Salesperson) এর মোট বিক্রয়ের পরিমাণ জানাতে চাই। আমরা এটি GROUP BY ক্লজ ব্যবহার করে করতে পারি:

SELECT salesperson_id, SUM(sale_amount) AS total_sales
FROM Sales
GROUP BY salesperson_id;

এখানে, GROUP BY salesperson_id দ্বারা প্রতিটি বিক্রয় প্রতিনিধির জন্য একটি গ্রুপ তৈরি করা হবে এবং প্রতিটি গ্রুপের জন্য SUM() ফাংশনটি প্রয়োগ করা হবে।


Aggregation এবং Grouping একসাথে ব্যবহার

অনেক সময় Aggregation এবং Grouping একসাথে ব্যবহার করা হয় যখন আপনি কিছু ক্যাটাগরি বা গ্রুপ অনুযায়ী ডেটা সংক্ষেপণ করতে চান। এই দুইটি একসাথে ব্যবহার করলে আপনি ভিন্ন ভিন্ন গ্রুপের জন্য অ্যাগ্রিগেটেড ফলাফল পেতে পারেন।

উদাহরণ:

ধরা যাক, আমরা Sales টেবিল থেকে বিক্রয়ের পরিমাণ এবং প্রতিটি বিক্রয় প্রতিনিধির গড় বিক্রয় জানাতে চাই, এবং গ্রুপিং করতে চাই বিক্রয়ের মাসের ভিত্তিতে।

SELECT salesperson_id, EXTRACT(MONTH FROM sale_date) AS sale_month, 
       SUM(sale_amount) AS total_sales, AVG(sale_amount) AS avg_sales
FROM Sales
GROUP BY salesperson_id, EXTRACT(MONTH FROM sale_date);

এখানে:

  • GROUP BY salesperson_id, EXTRACT(MONTH FROM sale_date) এই অংশটি বিক্রয়ের প্রতিনিধির সাথে মাস ভিত্তিক গ্রুপিং তৈরি করবে।
  • SUM() এবং AVG() ফাংশন ব্যবহার করে, আমরা প্রতিটি গ্রুপের মোট বিক্রয় এবং গড় বিক্রয় জানতে পারবো।

HAVING ক্লজ ব্যবহার

HAVING ক্লজ ব্যবহার করা হয় GROUP BY কুয়েরির ফলাফলে শর্ত আরোপ করার জন্য। যখন আপনি গ্রুপিংয়ের পর ফলাফল ফিল্টার করতে চান, তখন HAVING ক্লজ ব্যবহার করা হয়। এটি WHERE ক্লজের মতো কাজ করে, তবে WHERE শুধুমাত্র সিংগেল রেকর্ডে কাজ করে, আর HAVING গ্রুপেড রেকর্ডে কাজ করে।

উদাহরণ:

ধরা যাক, আমরা চাই শুধুমাত্র তাদেরকে দেখাতে, যাদের বিক্রয়ের পরিমাণ ১০,০০০ টাকা বা তার বেশি।

SELECT salesperson_id, SUM(sale_amount) AS total_sales
FROM Sales
GROUP BY salesperson_id
HAVING SUM(sale_amount) >= 10000;

এখানে, HAVING SUM(sale_amount) >= 10000 গ্রুপগুলির মধ্যে শুধুমাত্র সেইগুলো ফেরত দেবে, যেগুলির মোট বিক্রয়ের পরিমাণ ১০,০০০ টাকা বা তার বেশি।


সারসংক্ষেপ

  • Aggregation: এটি ডেটাবেসের একাধিক রেকর্ডের উপর ভিত্তি করে একটি একক মান বের করার প্রক্রিয়া (যেমন COUNT(), SUM(), AVG(), MIN(), MAX() ফাংশন)।
  • Grouping: এটি ডেটাকে নির্দিষ্ট কলামের ভিত্তিতে গ্রুপে ভাগ করে, যাতে গ্রুপ অনুসারে অ্যাগ্রিগেটেড ফলাফল পাওয়া যায় (যেমন GROUP BY ক্লজ)।
  • HAVING: এটি GROUP BY এর ফলাফলকে ফিল্টার করতে ব্যবহৃত হয়, বিশেষ করে যখন গ্রুপগুলির উপর অ্যাগ্রিগেট ফাংশন প্রয়োগ করা হয়।

DB2-এ Aggregation এবং Grouping ব্যবহার করলে আপনি বিশাল ডেটাসেটকে সহজে বিশ্লেষণ এবং সংক্ষেপণ করতে পারবেন, যা ব্যবসায়ের সিদ্ধান্ত নেওয়ার ক্ষেত্রে গুরুত্বপূর্ণ ভূমিকা পালন করে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion